package com.泛型;
/*泛型:本质上就是参数化类型，即将类型由原来的具体的类型参数化，
然后在使用或调用时传入具体的类型。
---可用于类，方法和接口中。

优点:
1.把运行期间的问题ClassCastException提前到了编译期间
2.避免了强制类型转换
* */

//Collection集合存储字符串并遍历

import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;

public class Demo {
    public static void main(String[] args) {

//        Collection c = new ArrayList();
        Collection<String> c = new ArrayList<String>();

        c.add("hello");
        c.add("world");
        c.add("java");
//        c.add(10);

//        for (Object s : c) {
//            System.out.println(s);
//        }

//        Iterator i = c.iterator();
        Iterator<String> i = c.iterator();
        while(i.hasNext()){
//            String s = (String)i.next();//ClassCastException
            String s = i.next();
            System.out.println(s);
        }
    }
}
